In accordance with the development of an information society, the significance of information security technologies used for safely protecting handled information increases. As one of constituent elements of such information security technologies, there is a cipher technology, and, the cipher technology is currently used in various products and systems.
While there are various cipher processing algorithms, as one of basic technologies, there is a technology called a common-key block cipher. In the common-key block cipher, an encryption key and a decryption key are common. In both an encryption process and a decryption process, a plurality of keys are generated from the common key, and a data transformation process is repeatedly performed in units of a certain block, for example, in units of block data of 64 bits, 128 bits, 256 bits, or the like.
As representative algorithms of the common-key block cipher, data encryption standard (DES) that is the past standard of the U.S.A. and advanced encryption standard (AES) that is the current standard of the U.S.A. are known. In addition, various common-key block ciphers are continuously proposed at present, and CLEFIA proposed by Sony Corp. in 2007 is one of the common-key block ciphers.
In addition, as conventional technologies disclosed for the common-key block cipher, for example, there are Patent Document 1 (Japanese Patent Application Laid-Open No. 2012-215813) and the like.
Such an algorithm of the common-key block cipher is mainly configured by a cipher processing unit that includes a round function executing unit that repeatedly executes a transformation of input data and a key scheduling unit that generates a round key to be applied in each round of a round function unit. The key scheduling unit generates an extended key acquired by increasing the number of bits on the basis of a master key (main key) that is a secret key and then generates a round key (sub key) to be applied in each round function unit of the cipher processing unit on the basis of the generated extended key.
As a specific structure executing such an algorithm, a structure is known which repeatedly executes a round function having a linear transformation unit and a nonlinear transformation unit. For example, as representative structures, there are a substitution-permutation network (SPN) structure, a Feistel structure, an extended Feistel structure, and the like.
All of these have a structure for transforming a plain text into a cipher text by repeatedly executing a round function having a linear transformation unit and a nonlinear transformation unit.